﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;
using Lrd.Template.Core.Infrastructure.Audits;
using Lrd.Template.Core.Infrastructure.Entity;

namespace Lrd.Template.Core.Infrastructure.EntityHistory
{
    [Description("审计实体属性信息")]
    [DisableAuditing]
    public abstract class AuditPropertyBase<TAuditPropertyKey, TAuditEntityKey> : EntityBase<TAuditPropertyKey>
      where TAuditPropertyKey : IEquatable<TAuditPropertyKey>
         where TAuditEntityKey : IEquatable<TAuditEntityKey>
    {

        [Description("显示名")]
        /// <summary>
        /// 显示名
        /// </summary>

        public virtual string DisplayName { get; set; }


        [Description("属性名")]
        /// <summary>
        /// 属性名
        /// </summary>
        public virtual string PropertyName { get; set; }



        [Description("新值")]
        /// <summary>
        /// 新值
        /// </summary>
        public virtual string NewValue { get; set; }

        [Description("旧值")]
        /// <summary>
        /// 旧值
        /// </summary>
        public virtual string OriginalValue { get; set; }


        [Description("属性类型名")]
        /// <summary>
        /// 属性类型名
        /// </summary>

        public virtual string PropertyTypeName { get; set; }

        [Description("审计实体ID")]
        /// <summary>
        /// 
        /// </summary>
        public virtual TAuditEntityKey AuditEntityId { get; set; }
    }
}
